namespace ext.data
{
	using System;
	using System.Runtime.CompilerServices;
	using System.Html;
	using System.Collections;
	
	
	/// <summary>
	/// An implementation of {@link Ext.data.DataProxy} that processes data requests within the same
	/// domain of the originating page.  Note: this class cannot be used to retrieve data from a domain other
	/// than the domain from which the running page was served. For cross-domain requests, use a
	/// {@link Ext.data.ScriptTagProxy ScriptTagProxy}.  Be aware that to enable the browser to parse an XML document, the server must set
	/// the Content-Type header in the HTTP response to &quot;text/xml&quot;.
	/// </summary>
	/// <htmlSummary>
	/// &lt;p&gt;An implementation of {@link Ext.data.DataProxy} that processes data requests within the same
	/// domain of the originating page.&lt;/p&gt;
	/// &lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: this class cannot be used to retrieve data from a domain other
	/// than the domain from which the running page was served. For cross-domain requests, use a
	/// {@link Ext.data.ScriptTagProxy ScriptTagProxy}.&lt;/p&gt;
	/// &lt;p&gt;Be aware that to enable the browser to parse an XML document, the server must set
	/// the Content-Type header in the HTTP response to &quot;&lt;tt&gt;text/xml&lt;/tt&gt;&quot;.&lt;/p&gt;
	/// </htmlSummary>
	/// <definedin>src\data\HttpProxy.js</definedin>
	[ScriptName("HttpProxy")]
	[ScriptNamespace("Ext.data")]
	[Imported()]
	public partial class HttpProxy : ext.data.DataProxy
	{
		
		#region Constructors
		/// <summary>Constructor</summary>
		/// <param name="conn">
		/// An {@link Ext.data.Connection} object, or options parameter to {@link Ext.Ajax#request}.
		/// &lt;p&gt;Note that if this HttpProxy is being used by a {@link Ext.data.Store Store}, then the
		/// Store&apos;s call to {@link #load} will override any specified &lt;tt&gt;callback&lt;/tt&gt; and &lt;tt&gt;params&lt;/tt&gt;
		/// options. In this case, use the Store&apos;s {@link Ext.data.Store#events events} to modify parameters,
		/// or react to loading events. The Store&apos;s {@link Ext.data.Store#baseParams baseParams} may also be
		/// used to pass parameters known at instantiation time.&lt;/p&gt;
		/// &lt;p&gt;If an options parameter is passed, the singleton {@link Ext.Ajax} object will be used to make
		/// the request.&lt;/p&gt;
		/// </param>
		public HttpProxy(object conn)
		{
		}
		
		/// <summary>Constructor</summary>
		public HttpProxy()
		{
		}
		#endregion
		
		#region Methods
		/// <summary>Return the {@link Ext.data.Connection} object being used by this Proxy.</summary>
		/// <definedin>src\data\HttpProxy.js</definedin>
		/// <returns>
		/// The Connection object. This object may be used to subscribe to events on
		/// a finer-grained basis than the DataProxy events.
		/// </returns>
		[ScriptName("getConnection")]
		public ext.data.Connection GetConnection()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Callback for read action</summary>
		/// <definedin>src\data\HttpProxy.js</definedin>
		/// <param name="action">Action name as per {@link Ext.data.Api.actions#read}.</param>
		/// <param name="o">The request transaction object</param>
		/// <param name="res">The server response</param>
		[ScriptName("onRead")]
		public void OnRead(string action, object o, object res)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Callback for write actions</summary>
		/// <definedin>src\data\HttpProxy.js</definedin>
		/// <param name="action">[Ext.data.Api.actions.create|read|update|destroy]</param>
		/// <param name="trans">The request transaction object</param>
		/// <param name="res">The server response</param>
		[ScriptName("onWrite")]
		public void OnWrite(string action, object trans, object res)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Used for overriding the url used for a single request. Designed to be called during a beforeaction event. Calling setUrl
		/// will override any urls set via the api configuration parameter. Set the optional parameter makePermanent to set the url for
		/// all subsequent requests. If not set to makePermanent, the next request will use the same url or api configuration defined
		/// in the initial proxy configuration.
		/// </summary>
		/// <definedin>src\data\HttpProxy.js</definedin>
		/// <param name="url"></param>
		/// <param name="makePermanent">
		/// [false]
		/// (e.g.: beforeload, beforesave, etc).
		/// </param>
		[ScriptName("setUrl")]
		public void SetUrl(string url, bool makePermanent)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Used for overriding the url used for a single request. Designed to be called during a beforeaction event. Calling setUrl
		/// will override any urls set via the api configuration parameter. Set the optional parameter makePermanent to set the url for
		/// all subsequent requests. If not set to makePermanent, the next request will use the same url or api configuration defined
		/// in the initial proxy configuration.
		/// </summary>
		/// <definedin>src\data\HttpProxy.js</definedin>
		/// <param name="url"></param>
		[ScriptName("setUrl")]
		public void SetUrl(string url)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>HttpProxy implementation of DataProxy#doRequest</summary>
		/// <definedin>src\data\HttpProxy.js</definedin>
		/// <param name="action">The crud action type (create, read, update, destroy)</param>
		/// <param name="rs">If action is load, rs will be null</param>
		/// <param name="params">
		/// An object containing properties which are to be used as HTTP parameters
		/// for the request to the remote server.
		/// </param>
		/// <param name="reader">
		/// The Reader object which converts the data
		/// object into a block of Ext.data.Records.
		/// </param>
		/// <param name="callback">
		/// &lt;div class=&quot;sub-desc&quot;&gt;&lt;p&gt;A function to be called after the request.
		/// The &lt;tt&gt;callback&lt;/tt&gt; is passed the following arguments:&lt;ul&gt;
		/// &lt;li&gt;&lt;tt&gt;r&lt;/tt&gt; : Ext.data.Record[] The block of Ext.data.Records.&lt;/li&gt;
		/// &lt;li&gt;&lt;tt&gt;options&lt;/tt&gt;: Options object from the action request&lt;/li&gt;
		/// &lt;li&gt;&lt;tt&gt;success&lt;/tt&gt;: Boolean success indicator&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;/div&gt;
		/// </param>
		/// <param name="scope">The scope (<c>this</c> reference) in which the callback function is executed. Defaults to the browser window.</param>
		/// <param name="arg">An optional argument which is passed to the callback as its second parameter.</param>
		[ScriptName("doRequest")]
		public void DoRequest(string action, ext.data.RecordClass rs, object @params, ext.data.DataReader reader, System.Delegate callback, object scope, object arg)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>HttpProxy implementation of DataProxy#doRequest</summary>
		/// <definedin>src\data\HttpProxy.js</definedin>
		/// <param name="action">The crud action type (create, read, update, destroy)</param>
		/// <param name="rs">If action is load, rs will be null</param>
		/// <param name="params">
		/// An object containing properties which are to be used as HTTP parameters
		/// for the request to the remote server.
		/// </param>
		/// <param name="reader">
		/// The Reader object which converts the data
		/// object into a block of Ext.data.Records.
		/// </param>
		/// <param name="callback">
		/// &lt;div class=&quot;sub-desc&quot;&gt;&lt;p&gt;A function to be called after the request.
		/// The &lt;tt&gt;callback&lt;/tt&gt; is passed the following arguments:&lt;ul&gt;
		/// &lt;li&gt;&lt;tt&gt;r&lt;/tt&gt; : Ext.data.Record[] The block of Ext.data.Records.&lt;/li&gt;
		/// &lt;li&gt;&lt;tt&gt;options&lt;/tt&gt;: Options object from the action request&lt;/li&gt;
		/// &lt;li&gt;&lt;tt&gt;success&lt;/tt&gt;: Boolean success indicator&lt;/li&gt;&lt;/ul&gt;&lt;/p&gt;&lt;/div&gt;
		/// </param>
		/// <param name="scope">The scope (<c>this</c> reference) in which the callback function is executed. Defaults to the browser window.</param>
		/// <param name="arg">An optional argument which is passed to the callback as its second parameter.</param>
		[ScriptName("doRequest")]
		public void DoRequest(string action, ext.data.RecordClass[] rs, object @params, ext.data.DataReader reader, System.Delegate callback, object scope, object arg)
		{
			throw new System.Exception("Imported - not implemented");
		}
		#endregion
	}
}
